<?php

// +----------------------------------------------------------------------
// | TAODUDU.COM  [ Simple Efficient Excellent ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016 http://www.taodudu.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: ubten <462193409@qq.com> http://www.ubten.com/
// +----------------------------------------------------------------------
namespace Libs;

class KdApi {

/**
*
* 快递鸟订阅推送2.0接口
*
* @技术QQ: 4009633321
* @技术QQ群: 200121393
* @see: http://www.kdniao.com/api-subscribe
* @copyright: 深圳市快金数据技术服务有限公司
* 
* ID和Key请到官网申请：http://www.kdniao.com/ServiceApply.aspx
*/
private $EBusinessID = '1274604';
private $AppKey = 'cc50d8ec-1697-4078-ab7a-6af884525e01';
private $ReqURL = 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx';
/**
 * Json方式  物流信息订阅
 */
//function getOrderTracesByJson($ShipperCode,$LogisticCode){
//    
//	$requestData= "{'OrderCode':'','ShipperCode':'".$ShipperCode."','LogisticCode':'".$LogisticCode."'}";
//	$datas = array(
//            'EBusinessID' => $this->EBusinessID,
//            'RequestType' => '1002',
//            'RequestData' => urlencode($requestData) ,
//            'DataType' => '2',
//        );
//        $datas['DataSign'] = $this->encrypt($requestData, $this->AppKey);
//	$result=$this->sendPost($this->ReqURL, $datas);	
//	//根据公司业务处理返回的信息......
//	return $result;
//}

function getOrderTracesByJson($shipperCode, $logisticCode){
	$requestData= "{\"OrderCode\":\"\",\"ShipperCode\":\"".$shipperCode."\",\"LogisticCode\":\"".$logisticCode."\",\"SiteUrl\":\"".$_SERVER['HTTP_HOST']."\",\"App\":\"ECShop_V2.7.3_UTF8_release1106\"}";
	$datas = array(
        'EBusinessID' => $this->EBusinessID,
        'RequestType' => '1002',
        'RequestData' => urlencode($requestData) ,
        'DataType' => '2',
    );
    
        $datas['DataSign'] = $this->encrypt($requestData, $this->AppKey);
	$result=$this->sendPost($this->ReqURL, $datas);	
	
	//根据公司业务处理返回的信息......
	
	return $result;
}



function orderTracesSubByJson($ShipperCode,$LogisticCode){
	$requestData="{'OrderCode': '','ShipperCode':".$ShipperCode.",'LogisticCode':".$LogisticCode."}";
	$datas = array(
        'EBusinessID' => $this->EBusinessID,
        'RequestType' => '1002',
        'RequestData' => urlencode($requestData) ,
        'DataType' => '2',
    );
    $datas['DataSign'] = $this->encrypt($requestData, $this->AppKey);
    $result=  $this->sendPost($this->ReqURL, $datas);	
	//根据公司业务处理返回的信息......
    return $result;
}

/**
 *  post提交数据 
 * @param  string $url 请求Url
 * @param  array $datas 提交的数据 
 * @return url响应返回的html
 */
function sendPost($url, $datas) {
    $temps = array();	
    foreach ($datas as $key => $value) {
        $temps[] = sprintf('%s=%s', $key, $value);		
    }	
    $post_data = implode('&', $temps);
    $url_info = parse_url($url);
	if($url_info['port']=='')
	{
		$url_info['port']=80;	
	}
	echo $url_info['port'];
    $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
    $httpheader.= "Host:" . $url_info['host'] . "\r\n";
    $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";
    $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";
    $httpheader.= "Connection:close\r\n\r\n";
    $httpheader.= $post_data;
    $fd = fsockopen($url_info['host'], $url_info['port']);
    fwrite($fd, $httpheader);
    $gets = "";
	$headerFlag = true;
	while (!feof($fd)) {
		if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
			break;
		}
	}
    while (!feof($fd)) {
		$gets.= fread($fd, 128);
    }
    fclose($fd);  
    
    return $gets;
}

/**
 * 电商Sign签名生成
 * @param data 内容   
 * @param appkey Appkey
 * @return DataSign签名
 */
function encrypt($data, $appkey) {
    return urlencode(base64_encode(md5($data.$appkey)));
}

    
}
